# -*- coding: cp1252 -*-

from ConectaMysql import *  #importa a classe conexao

class GerenciaVeiculo(ConectaMysql):    
    def __init__(self):        
        ConectaMysql.__init__(self)

    
    def getVeiculo(self,  parametro = ""):
        self.__parametro = parametro
        self.__selectBase = ("SELECT * FROM tb_automovel " +  #seleciona a tablea de automovel
                             #junta a tabela modelo com a tabela marca fazendo uma relacao
            "INNER JOIN tb_modelo ON " + 
            "tb_modelo.MODELOid = tb_automovel.AUTO_MODELOid " +
            "INNER JOIN tb_marca ON " + 
            "tb_marca.MARCAid = tb_modelo.MODELO_MARCAid ")


        
        self.__selectFiltro =("WHERE (tb_automovel.AUTOchassi = '" + str(self.__parametro) + "') or " + 
            "(tb_automovel.AUTOid = '" + self.__parametro + "') or " +
            "(tb_modelo.MODELOano = '" + self.__parametro + "') or " +
            "(tb_marca.MARCAnome like " + "'%" + self.__parametro + "%') or " +
            "(tb_modelo.MODELOnome like " + "'%" + self.__parametro + "%') or " +
            "(tb_modelo.MODELOcor like " + "'%" + self.__parametro + "%')")


        if (parametro <> ""): #verificacao se parametro eh diferente de vazio
            self.__select = self.__selectBase + self.__selectFiltro
        else:
            self.__select = self.__selectBase

        
        self.__result  = self.executaQuery(self.__select) # executa a cunsulta no banco
        
        self.__arrayVeiculo = [] #cria uma tabela veiculo
        for self.__linha in self.__result:
            self.__arrayVeiculo.append(self.__linha) #adiciona self._linha a lista veiculo

        return self.__arrayVeiculo #retorna a lista veiculo
 



    def getEstoque(self, parametro, alterar = False):
        self.__parametro = parametro
        self.__visualizarAlterar = alterar

        self.__selectBase = ("SELECT * FROM view_estoque") #seleciona a tabela view estoque
        self.__selectFiltro1 =(" WHERE (AUTOchassi = '" + str(self.__parametro) + "') or " +
            "(AUTOid = '" + str(self.__parametro) + "')")

        
        self.__selectFiltro2 = (" or (MARCAnome like " + "'%" + self.__parametro + "%') or " +
            "(MODELOnome like " + "'%" + self.__parametro + "%') or " +
            "(MODELOcor like " + "'%" + self.__parametro + "%') or " +
            "(MODELOano like " + "'%" + self.__parametro + "%')")    


        if ((parametro <> "") and (self.__visualizarAlterar == True)):
            self.__select = self.__selectBase + self.__selectFiltro1

        elif((parametro <> "") and (self.__visualizarAlterar <> True)):
            self.__select = self.__selectBase + self.__selectFiltro1 + self.__selectFiltro2

        else:
            self.__select = self.__selectBase

        
        self.__ordena = (" ORDER BY AUTOid") #ordena os dados do banco

        self.__select = self.__select + self.__ordena

        
        self.__result  = self.executaQuery(self.__select) #executa a sonsulta no banco
        
        
        self.__arrayVeiculo = [] #lista veiculo
        
        for self.__linha in self.__result:
            self.__arrayVeiculo.append(self.__linha)

        return self.__arrayVeiculo




    def setVeiculo(self, objectVeiculo):
        self.__objectVeiculo = objectVeiculo
        
        self.__insertVeiculo = self.executaQuery(#insere dados na tabela
            "INSERT INTO tb_automovel(" +
            "`AUTOchassi`," +
            "`AUTO_MODELOid`," +
            "`AUTOdataEntrada`," +
            "`AUTOprecoFornecedor`," +
            "`AUTOprecoVenda`," +
	    "`AUTOsituacao`" +			
            ") VALUES (" +
            "'" + str(self.__objectVeiculo.getChassi())  + "'," +
            "'" + str(self.__objectVeiculo.getModeloId())  + "'," +
            "NOW()," +
            "'" + str(self.__objectVeiculo.getPrecoFornecedor())  + "'," +
	    "'" + str(self.__objectVeiculo.getPrecoVenda())  + "'," +
            "'" + str(self.__objectVeiculo.getSituacao()) + "'"  +
            ")")

        if (self.__insertVeiculo<> False): #verifica se a insercao de veiculo eh verdadeira
            print "Cadastrado com Sucesso"


    def alterVeiculo(self, parametro, objectVeiculo):
        self.__parametro = parametro
        self.__objectVeiculo = objectVeiculo       


        self.__alterVeiculo = self.executaQuery( #executa alteracao de dados na tabela
            "UPDATE tb_automovel SET " +
            "AUTOchassi = '" + str(self.__objectVeiculo.getChassi()) + "', " +
            "AUTO_MODELOid = " + self.__objectVeiculo.getModeloId() + ", " +
            "AUTOdataEntrada = '" + str(self.__objectVeiculo.getDataEntrada()) + "', " +
            "AUTOprecoFornecedor = '" + str(self.__objectVeiculo.getPrecoFornecedor()) + "', " +
            "AUTOprecoVenda = '" + str(self.__objectVeiculo.getPrecoVenda()) + "'" +    
            "WHERE (AUTOid = '" + str(self.__parametro) + "')"
            )

        if (self.__alterVeiculo <> False): #verifica se a alteracao de veiculo eh verdadeira
            print "Alterado Com Sucesso"

















            

